#ifndef PROTOCOL_H
#define PROTOCOL_H
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
typedef unsigned int uint;
#define REGIST_OK "regist_ok"
#define REGIST_FAILED "regist_failed name existed"

#define LOGIN_OK "login_ok"
#define LOGIN_FAILED "login_failed:name or pwd  or relogin"

#define SEARCH_USR_NO "NO such people"
#define SEARCH_USR_ONLINE "online"
#define SEARCH_USR_OFFONLINE "offonline"

enum ENUM_MSG_TYPE{
    ENUM_MSG_TYPE_MIN=0,
    ENUM_MSG_TYPE_REGIST_REQUEST,//注册请求
    ENUM_MSG_TYPE_REGIST_RESPOND,//注册回复
    ENUM_MSG_TYPE_LOGIN_REQUEST,//登录请求
    ENUM_MSG_TYPE_LOGIN_RESPOND,//登录回复
    ENUM_MSG_TYPE_ALLONLINE_REQUEST,//在线用户请求
    ENUM_MSG_TYPE_ALLONLINE_RESPOND,//在线用户回复
    ENUM_MSG_TYPE_SEARCH_USR_REQUEST,//搜索用户请求
    ENUM_MSG_TYPE_SEARCH_USR_RESPOND,//搜索用户回复
    // ENUM_MSG_TYPE_REQUEST,
    // ENUM_MSG_TYPE_RESPOND,
    // ENUM_MSG_TYPE_REQUEST,
    // ENUM_MSG_TYPE_RESPOND,
    ENUM_MSG_TYPE_MAX=0x00fffffff,
};
struct PDU
{
    uint uiPDULen;//总的协议数据单元大小
    uint uiMsgType;//消息类型
    char caData[64];
    uint uiMsgLen;//实际消息长度
    int caMsg[];//实际消息
};
PDU *mkPdu(uint uiMsgLen);

#endif // PROTOCOL_H
